class ZtUserInfoModel {
  String? userId;
  int? userType;
  String? nickname;
  bool? isInternal;
  String? avatar;
  String? avatarUrl;
  String? avatarThumbUrl;
  String? avatarMiddleThumbUrl;
  List<String>? mediumList;
  List<AvatarRespList>? avatarRespList;
  int? gender;
  String? birthday;
  int? age;
  String? country;
  String? pkgName;
  bool? isAnswer;
  int? availableCoins;
  int? auditStatus;
  bool? isShowReviewSupplementTips;
  List<String>? tagsList;
  List<TagDetails>? tagDetails;
  String? rongcloudToken;
  bool? isRecharge;
  bool? isVip;
  int? level;
  int? followNum;
  int? praiseNum;
  bool? isBlock;
  bool? isSwitchNotDisturbIm;
  bool? isSwitchNotDisturbCall;
  bool? isHavePassword;
  bool? isReview;
  bool? isMultiple;
  String? registerPkgName;
  String? registerCountry;
  String? loginPkgName;
  int? giftWallAction;

  ZtUserInfoModel({
    this.userId,
    this.userType,
    this.nickname,
    this.isInternal,
    this.avatar,
    this.avatarUrl,
    this.avatarThumbUrl,
    this.avatarMiddleThumbUrl,
    this.mediumList,
    this.avatarRespList,
    this.gender,
    this.birthday,
    this.age,
    this.country,
    this.pkgName,
    this.isAnswer,
    this.availableCoins,
    this.auditStatus,
    this.isShowReviewSupplementTips,
    this.tagsList,
    this.tagDetails,
    this.rongcloudToken,
    this.isRecharge,
    this.isVip,
    this.level,
    this.followNum,
    this.praiseNum,
    this.isBlock,
    this.isSwitchNotDisturbIm,
    this.isSwitchNotDisturbCall,
    this.isHavePassword,
    this.isReview,
    this.isMultiple,
    this.registerPkgName,
    this.registerCountry,
    this.loginPkgName,
    this.giftWallAction,
  });

  ZtUserInfoModel.fromJson(Map<String, dynamic> json) {
    userId = json['userId'];
    userType = json['userType'];
    nickname = json['nickname'];
    isInternal = json['isInternal'];
    avatar = json['avatar'];
    avatarUrl = json['avatarUrl'];
    avatarThumbUrl = json['avatarThumbUrl'];
    avatarMiddleThumbUrl = json['avatarMiddleThumbUrl'];

    if (json['avatarRespList'] != null) {
      avatarRespList = <AvatarRespList>[];
      json['avatarRespList'].forEach((v) {
        avatarRespList!.add(AvatarRespList.fromJson(v));
      });
    }
    gender = json['gender'];
    birthday = json['birthday'];
    age = json['age'];
    country = json['country'];
    pkgName = json['pkgName'];

    isAnswer = json['isAnswer'];
    availableCoins = json['availableCoins'];
    auditStatus = json['auditStatus'];
    isShowReviewSupplementTips = json['isShowReviewSupplementTips'];
    if (json['tagsList'] != null) {
      tagsList = <String>[];
      json['tagsList'].forEach((v) {
        tagsList!.add(v);
      });
    }
    if (json['tagDetails'] != null) {
      tagDetails = <TagDetails>[];
      json['tagDetails'].forEach((v) {
        tagDetails!.add(TagDetails.fromJson(v));
      });
    }
    rongcloudToken = json['rongcloudToken'];
    isRecharge = json['isRecharge'];
    isVip = json['isVip'];
    level = json['level'];
    followNum = json['followNum'];
    praiseNum = json['praiseNum'];
    isBlock = json['isBlock'];
    isSwitchNotDisturbIm = json['isSwitchNotDisturbIm'];
    isSwitchNotDisturbCall = json['isSwitchNotDisturbCall'];
    isHavePassword = json['isHavePassword'];
    isReview = json['isReview'];
    isMultiple = json['isMultiple'];
    registerPkgName = json['registerPkgName'];
    registerCountry = json['registerCountry'];
    loginPkgName = json['loginPkgName'];
    giftWallAction = json['giftWallAction'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = Map<String, dynamic>();
    data['userId'] = userId;
    data['userType'] = userType;
    data['nickname'] = nickname;
    data['isInternal'] = isInternal;
    data['avatar'] = avatar;
    data['avatarUrl'] = avatarUrl;
    data['avatarThumbUrl'] = avatarThumbUrl;
    data['avatarMiddleThumbUrl'] = avatarMiddleThumbUrl;
    if (this.avatarRespList != null) {
      data['avatarRespList'] = avatarRespList!.map((v) => v.toJson()).toList();
    }
    data['gender'] = gender;
    data['birthday'] = birthday;
    data['age'] = age;
    data['country'] = country;
    data['pkgName'] = pkgName;

    data['isAnswer'] = isAnswer;
    data['availableCoins'] = availableCoins;
    data['auditStatus'] = auditStatus;
    data['isShowReviewSupplementTips'] = isShowReviewSupplementTips;
    if (this.tagsList != null) {
      data['tagsList'] = tagsList!.map((v) => v).toList();
    }
    if (this.tagDetails != null) {
      data['tagDetails'] = tagDetails!.map((v) => v.toJson()).toList();
    }
    data['rongcloudToken'] = rongcloudToken;
    data['isRecharge'] = isRecharge;
    data['isVip'] = isVip;
    data['level'] = level;
    data['followNum'] = followNum;
    data['praiseNum'] = praiseNum;
    data['isBlock'] = isBlock;
    data['isSwitchNotDisturbIm'] = isSwitchNotDisturbIm;
    data['isSwitchNotDisturbCall'] = isSwitchNotDisturbCall;
    data['isHavePassword'] = isHavePassword;
    data['isReview'] = isReview;
    data['isMultiple'] = isMultiple;
    data['registerPkgName'] = registerPkgName;
    data['registerCountry'] = registerCountry;
    data['loginPkgName'] = loginPkgName;
    data['giftWallAction'] = giftWallAction;
    return data;
  }
}

class AvatarRespList {
  String? mediaPath;
  String? mediaUrl;
  String? middleThumbUrl;
  String? thumbUrl;

  AvatarRespList({this.mediaPath, mediaUrl, middleThumbUrl, thumbUrl});

  AvatarRespList.fromJson(Map<String, dynamic> json) {
    mediaPath = json['mediaPath'];
    mediaUrl = json['mediaUrl'];
    middleThumbUrl = json['middleThumbUrl'];
    thumbUrl = json['thumbUrl'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = Map<String, dynamic>();
    data['mediaPath'] = mediaPath;
    data['mediaUrl'] = mediaUrl;
    data['middleThumbUrl'] = middleThumbUrl;
    data['thumbUrl'] = thumbUrl;
    return data;
  }
}

class TagDetails {
  String? tag;
  String? tagTip;
  String? tagColor;

  TagDetails({this.tag, tagTip, tagColor});

  TagDetails.fromJson(Map<String, dynamic> json) {
    tag = json['tag'];
    tagTip = json['tagTip'];
    tagColor = json['tagColor'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = Map<String, dynamic>();
    data['tag'] = tag;
    data['tagTip'] = tagTip;
    data['tagColor'] = tagColor;
    return data;
  }
}
